package com.wb.mianxiangduixiang.bms;

/**
 * @author 黄衡熙
 * @version 1.0
 * @date 2025年07月22日14:03
 */
// 存储所有的账户信息,主要有两个属性
/*static Account[]
static count*/
// 所有的开户的账户
// 当前已开户账户的总数
// 所有与账户相关的信息均由银行保存
// 因此,银行提供了开户、登录、根据卡号查找对应账户的方法
public class Bank {
    // 所有的开户的账户
    static Account[] accounts = new Account[100];
    // 当前已开户账户的总数
    static int count;

    /**
     * 银行的开户方法
     * @param account 在菜单中用户输入的信息
     * @return
     */
    //开户
    public static boolean register(Account account) {
        if(count<accounts.length) {
            accounts[count] = account;
            count++;
            return true;
        }
        return false;
    }

    /**
     * 账户登录
     * @param id       卡号
     * @param password 密码
     * @return 当前登录的账户, 如果卡号或者密码错误, 直接返回null即可
     */
    //登录
    public static Account login(int id, String password) {
        for(int i=0;i<count;i++) {
            Account account = accounts[i];
            if (accounts[i].getId()==id && accounts[i].getPassword().equals(password)) {
                return accounts[i];
            }
        }
        return null;
    }

    /**
     * 根据卡号查询对应账户信息
     * @param id
     * @return
     */
    public static Account findById(int id) {
        for(int i=0;i<count;i++) {
            Account account = accounts[i];
            if(account.getId()==id) {
                return account;
            }
        }

        return null;
    }
}